import { message } from "antd";
import axios from "axios";

// 创建axios请求实例
const requestInstance = axios.create({
  baseURL: "http://localhost:8000/",
  timeout: 60000
});

// 请求拦截器
requestInstance.interceptors.request.use(
  (config) => {
    // 每个请求接口的公共参数
    // config.headers.Authorization = 'Bearer ' + token;
    config.headers.Authorization = "";
    return config;
  },
  (error) => {
    // 抛出异常
    message.error(`请求错误：${error.message}`);
    return Promise.reject(error);
  }
);

// 响应拦截器
requestInstance.interceptors.response.use(
  (res) => {
    /**
     * 成功响应
     */

    // 1.普通数据
    if (res.data.code === 0 || res.data.code === 200) {
      return res.data;
    }
    // 2.文件流数据
    if (res.status === 200 && res.data instanceof Blob) {
      return res.data;
    }
    // 3.未登录，无权限等等特殊处理
    if (res.data.code === 403) {
      message.error(res.data.msg);
      return Promise.reject(res);
    }

    // 兜底处理：抛出错误uncaugch(in promise)阻止继续执行
    message.error(res.data.msg);
    return Promise.reject(res);
  },
  (error) => {
    /**
     * 异常响应
     */
    message.error(`错误提示：${error.message}`);
    return Promise.reject(error);
  }
);

export default requestInstance;
